home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / Terminals.p < prev    next >
Text File  |  1995-09-14  |  12KB  |  352 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 10:35:40 PM }
  2. {}
  3. {     File:        Terminals.p}
  4. { }
  5. {     Contains:    Communications Toolbox Terminal tool Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit Terminals;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __TERMINALS__}
  26. {$SETC __TERMINALS__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Quickdraw, Dialogs, AppleTalk, CTBUtilities, Connections;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35.     const
  36. { current Terminal Manager version     }
  37.         curTMVersion = 2;
  38. { current Terminal Manager Environment Record version     }
  39.         curTermEnvRecVers = 0;
  40. { error codes    }
  41.         tmGenericError = -1;
  42.         tmNoErr = 0;
  43.         tmNotSent = 1;
  44.         tmEnvironsChanged = 2;
  45.         tmNotSupported = 7;
  46.         tmNoTools = 8;
  47.  
  48.  
  49.     type
  50.         TMErr = OSErr;
  51.  
  52.  
  53.     const
  54.         tmInvisible = $1;
  55.         tmSaveBeforeClear = $2;
  56.         tmNoMenus = $4;
  57.         tmAutoScroll = $8;
  58.         tmConfigChanged = $10;
  59.  
  60.  
  61.     type
  62.         TMFlags = LONGINT;
  63.  
  64.  
  65.     const
  66.         selTextNormal = $1;
  67.         selTextBoxed = $2;
  68.         selGraphicsMarquee = $4;
  69.         selGraphicsLasso = $8;
  70.         tmSearchNoDiacrit = $100;
  71.         tmSearchNoCase = $200;
  72.  
  73.  
  74.     type
  75.         TMSearchTypes = INTEGER;
  76.  
  77.         TMSelTypes = INTEGER;
  78.  
  79.  
  80.     const
  81.         cursorText = 1;
  82.         cursorGraphics = 2;
  83.  
  84.  
  85.     type
  86.         TMCursorTypes = INTEGER;
  87.  
  88.  
  89.     const
  90.         tmTextTerminal = $1;
  91.         tmGraphicsTerminal = $2;
  92.  
  93.  
  94.     type
  95.         TMTermTypes = INTEGER;
  96.  
  97.         TermDataBlock = record
  98.                 flags: TMTermTypes;
  99.                 theData: Handle;
  100.                 auxData: Handle;
  101.                 reserved: LONGINT;
  102.             end;
  103.  
  104.         TermDataBlockPtr = ^TermDataBlock;
  105.         TermDataBlockH = ^TermDataBlockPtr;
  106.         TermDataBlockHandle = ^TermDataBlockPtr;
  107.  
  108.         TermEnvironRec = record
  109.                 version: INTEGER;
  110.                 termType: TMTermTypes;
  111.                 textRows: INTEGER;
  112.                 textCols: INTEGER;
  113.                 cellSize: Point;
  114.                 graphicSize: Rect;
  115.                 slop: Point;
  116.                 auxSpace: Rect;
  117.             end;
  118.  
  119.         TermEnvironPtr = ^TermEnvironRec;
  120.  
  121.         TMSelection = record
  122.                 case INTEGER of
  123.                     0: (
  124.                             selRect: Rect;
  125.                     );
  126.                     1: (
  127.                             selRgnHandle: RgnHandle;
  128.                     );
  129.             end;
  130.  
  131.         TermPtr = ^TermRecord;
  132.         TermHandle = ^TermPtr;
  133.  
  134.         TerminalSendProcPtr = ProcPtr;  { FUNCTION TerminalSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags): LONGINT; }
  135.         TerminalBreakProcPtr = ProcPtr;  { PROCEDURE TerminalBreak(duration: LONGINT; refCon: LONGINT); }
  136.         TerminalCacheProcPtr = ProcPtr;  { FUNCTION TerminalCache(refCon: LONGINT; theTermData: TermDataBlockPtr): LONGINT; }
  137.         TerminalSearchCallBackProcPtr = ProcPtr;  { PROCEDURE TerminalSearchCallBack(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect); }
  138.         TerminalClikLoopProcPtr = ProcPtr;  { FUNCTION TerminalClikLoop(refCon: LONGINT): BOOLEAN; }
  139.         TerminalEnvironsProcPtr = ProcPtr;  { FUNCTION TerminalEnvirons(refCon: LONGINT; VAR theEnvirons: TermEnvironRec): CMErr; }
  140.         TerminalChooseIdleProcPtr = ProcPtr;  { PROCEDURE TerminalChooseIdle; }
  141.         TerminalToolDefProcPtr = ProcPtr;  { FUNCTION TerminalToolDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  142.         TerminalSendUPP = UniversalProcPtr;
  143.         TerminalBreakUPP = UniversalProcPtr;
  144.         TerminalCacheUPP = UniversalProcPtr;
  145.         TerminalSearchCallBackUPP = UniversalProcPtr;
  146.         TerminalClikLoopUPP = UniversalProcPtr;
  147.         TerminalEnvironsUPP = UniversalProcPtr;
  148.         TerminalChooseIdleUPP = UniversalProcPtr;
  149.         TerminalToolDefUPP = UniversalProcPtr;
  150.  
  151.         TermRecord = record
  152.                 procID: INTEGER;
  153.                 flags: TMFlags;
  154.                 errCode: TMErr;
  155.                 refCon: LONGINT;
  156.                 userData: LONGINT;
  157.                 defProc: TerminalToolDefUPP;
  158.                 config: Ptr;
  159.                 oldConfig: Ptr;
  160.                 environsProc: TerminalEnvironsUPP;
  161.                 reserved1: LONGINT;
  162.                 reserved2: LONGINT;
  163.                 tmPrivate: Ptr;
  164.                 sendProc: TerminalSendUPP;
  165.                 breakProc: TerminalBreakUPP;
  166.                 cacheProc: TerminalCacheUPP;
  167.                 clikLoop: TerminalClikLoopUPP;
  168.                 owner: WindowPtr;
  169.                 termRect: Rect;
  170.                 viewRect: Rect;
  171.                 visRect: Rect;
  172.                 lastIdle: LONGINT;
  173.                 selection: TMSelection;
  174.                 selType: TMSelTypes;
  175.                 mluField: LONGINT;
  176.             end;
  177.  
  178.     const
  179.         uppTerminalSendProcInfo = $00002FF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 4 byte result; }
  180.         uppTerminalBreakProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  181.         uppTerminalCacheProcInfo = $000003F0; { FUNCTION (4 byte param, 4 byte param): 4 byte result; }
  182.         uppTerminalSearchCallBackProcInfo = $00000EC0; { PROCEDURE (4 byte param, 2 byte param, 4 byte param); }
  183.         uppTerminalClikLoopProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  184.         uppTerminalEnvironsProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  185.         uppTerminalChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  186.         uppTerminalToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  187.  
  188.     function NewTerminalSendProc (userRoutine: TerminalSendProcPtr): TerminalSendUPP;
  189.     {$IFC NOT GENERATINGCFM }
  190.     inline
  191.         $2E9F;
  192.     {$ENDC}
  193.  
  194.     function NewTerminalBreakProc (userRoutine: TerminalBreakProcPtr): TerminalBreakUPP;
  195.     {$IFC NOT GENERATINGCFM }
  196.     inline
  197.         $2E9F;
  198.     {$ENDC}
  199.  
  200.     function NewTerminalCacheProc (userRoutine: TerminalCacheProcPtr): TerminalCacheUPP;
  201.     {$IFC NOT GENERATINGCFM }
  202.     inline
  203.         $2E9F;
  204.     {$ENDC}
  205.  
  206.     function NewTerminalSearchCallBackProc (userRoutine: TerminalSearchCallBackProcPtr): TerminalSearchCallBackUPP;
  207.     {$IFC NOT GENERATINGCFM }
  208.     inline
  209.         $2E9F;
  210.     {$ENDC}
  211.  
  212.     function NewTerminalClikLoopProc (userRoutine: TerminalClikLoopProcPtr): TerminalClikLoopUPP;
  213.     {$IFC NOT GENERATINGCFM }
  214.     inline
  215.         $2E9F;
  216.     {$ENDC}
  217.  
  218.     function NewTerminalEnvironsProc (userRoutine: TerminalEnvironsProcPtr): TerminalEnvironsUPP;
  219.     {$IFC NOT GENERATINGCFM }
  220.     inline
  221.         $2E9F;
  222.     {$ENDC}
  223.  
  224.     function NewTerminalChooseIdleProc (userRoutine: TerminalChooseIdleProcPtr): TerminalChooseIdleUPP;
  225.     {$IFC NOT GENERATINGCFM }
  226.     inline
  227.         $2E9F;
  228.     {$ENDC}
  229.  
  230.     function NewTerminalToolDefProc (userRoutine: TerminalToolDefProcPtr): TerminalToolDefUPP;
  231.     {$IFC NOT GENERATINGCFM }
  232.     inline
  233.         $2E9F;
  234.     {$ENDC}
  235.  
  236.     function CallTerminalSendProc (thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags; userRoutine: TerminalSendUPP): LONGINT;
  237.     {$IFC NOT GENERATINGCFM}
  238.     inline
  239.         $205F, $4E90;
  240.     {$ENDC}
  241.  
  242.     procedure CallTerminalBreakProc (duration: LONGINT; refCon: LONGINT; userRoutine: TerminalBreakUPP);
  243.     {$IFC NOT GENERATINGCFM}
  244.     inline
  245.         $205F, $4E90;
  246.     {$ENDC}
  247.  
  248.     function CallTerminalCacheProc (refCon: LONGINT; theTermData: TermDataBlockPtr; userRoutine: TerminalCacheUPP): LONGINT;
  249.     {$IFC NOT GENERATINGCFM}
  250.     inline
  251.         $205F, $4E90;
  252.     {$ENDC}
  253.  
  254.     procedure CallTerminalSearchCallBackProc (hTerm: TermHandle; refNum: INTEGER; var foundRect: Rect; userRoutine: TerminalSearchCallBackUPP);
  255.     {$IFC NOT GENERATINGCFM}
  256.     inline
  257.         $205F, $4E90;
  258.     {$ENDC}
  259.  
  260.     function CallTerminalClikLoopProc (refCon: LONGINT; userRoutine: TerminalClikLoopUPP): BOOLEAN;
  261.     {$IFC NOT GENERATINGCFM}
  262.     inline
  263.         $205F, $4E90;
  264.     {$ENDC}
  265.  
  266.     function CallTerminalEnvironsProc (refCon: LONGINT; var theEnvirons: TermEnvironRec; userRoutine: TerminalEnvironsUPP): CMErr;
  267.     {$IFC NOT GENERATINGCFM}
  268.     inline
  269.         $205F, $4E90;
  270.     {$ENDC}
  271.  
  272.     procedure CallTerminalChooseIdleProc (userRoutine: TerminalChooseIdleUPP);
  273.     {$IFC NOT GENERATINGCFM}
  274.     inline
  275.         $205F, $4E90;
  276.     {$ENDC}
  277.  
  278.     function CallTerminalToolDefProc (hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: TerminalToolDefUPP): LONGINT;
  279.     {$IFC NOT GENERATINGCFM}
  280.     inline
  281.         $205F, $4E90;
  282.     {$ENDC}
  283.  
  284.     function InitTM: TMErr;
  285.     function TMGetVersion (hTerm: TermHandle): Handle;
  286.     function TMGetTMVersion: INTEGER;
  287.     function TMNew ({CONST}
  288.                                     var termRect: Rect; {CONST}
  289.                                     var viewRect: Rect; flags: TMFlags; procID: INTEGER; owner: WindowPtr; sendProc: TerminalSendUPP; cacheProc: TerminalCacheUPP; breakProc: TerminalBreakUPP; clikLoop: TerminalClikLoopUPP; environsProc: TerminalEnvironsUPP; refCon: LONGINT; userData: LONGINT): TermHandle;
  290.     procedure TMDispose (hTerm: TermHandle);
  291.     procedure TMKey (hTerm: TermHandle; {CONST}
  292.                                     var theEvent: EventRecord);
  293.     procedure TMUpdate (hTerm: TermHandle; visRgn: RgnHandle);
  294.     procedure TMPaint (hTerm: TermHandle; {CONST}
  295.                                     var theTermData: TermDataBlock; {CONST}
  296.                                     var theRect: Rect);
  297.     procedure TMActivate (hTerm: TermHandle; activate: BOOLEAN);
  298.     procedure TMResume (hTerm: TermHandle; resume: BOOLEAN);
  299.     procedure TMClick (hTerm: TermHandle; {CONST}
  300.                                     var theEvent: EventRecord);
  301.     procedure TMIdle (hTerm: TermHandle);
  302.     function TMStream (hTerm: TermHandle; theBuffer: univ Ptr; theLength: LONGINT; flags: CMFlags): LONGINT;
  303.     function TMMenu (hTerm: TermHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  304.     procedure TMReset (hTerm: TermHandle);
  305.     procedure TMClear (hTerm: TermHandle);
  306.     procedure TMResize (hTerm: TermHandle; {CONST}
  307.                                     var newViewRect: Rect);
  308.     function TMGetSelect (hTerm: TermHandle; theData: Handle; var theType: ResType): LONGINT;
  309.     procedure TMGetLine (hTerm: TermHandle; lineNo: INTEGER; var theTermData: TermDataBlock);
  310.     procedure TMSetSelection (hTerm: TermHandle; {CONST}
  311.                                     var theSelection: TMSelection; selType: TMSelTypes);
  312.     procedure TMScroll (hTerm: TermHandle; dh: INTEGER; dv: INTEGER);
  313.     function TMValidate (hTerm: TermHandle): BOOLEAN;
  314.     procedure TMDefault (var theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  315.     function TMSetupPreflight (procID: INTEGER; var magicCookie: LONGINT): Handle;
  316.     procedure TMSetupSetup (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var magicCookie: LONGINT);
  317.     function TMSetupFilter (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var theEvent: EventRecord; var theItem: INTEGER; var magicCookie: LONGINT): BOOLEAN;
  318.     procedure TMSetupItem (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var theItem: INTEGER; var magicCookie: LONGINT);
  319.     procedure TMSetupXCleanup (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; var magicCookie: LONGINT);
  320.     procedure TMSetupPostflight (procID: INTEGER);
  321.     function TMGetConfig (hTerm: TermHandle): Ptr;
  322.     function TMSetConfig (hTerm: TermHandle; thePtr: univ Ptr): INTEGER;
  323.     function TMIntlToEnglish (hTerm: TermHandle; inputPtr: univ Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  324.     function TMEnglishToIntl (hTerm: TermHandle; inputPtr: univ Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  325.     procedure TMGetToolName (id: INTEGER; var name: Str255);
  326.     function TMGetProcID (name: ConstStr255Param): INTEGER;
  327.     procedure TMSetRefCon (hTerm: TermHandle; refCon: LONGINT);
  328.     function TMGetRefCon (hTerm: TermHandle): LONGINT;
  329.     procedure TMSetUserData (hTerm: TermHandle; userData: LONGINT);
  330.     function TMGetUserData (hTerm: TermHandle): LONGINT;
  331.     function TMAddSearch (hTerm: TermHandle; theString: ConstStr255Param; {CONST}
  332.                                     var where: Rect; searchType: TMSearchTypes; callBack: TerminalSearchCallBackUPP): INTEGER;
  333.     procedure TMRemoveSearch (hTerm: TermHandle; refnum: INTEGER);
  334.     procedure TMClearSearch (hTerm: TermHandle);
  335.     function TMGetCursor (hTerm: TermHandle; cursType: TMCursorTypes): Point;
  336.     function TMGetTermEnvirons (hTerm: TermHandle; var theEnvirons: TermEnvironRec): TMErr;
  337.     function TMChoose (var hTerm: TermHandle; where: Point; idleProc: TerminalChooseIdleUPP): INTEGER;
  338.     procedure TMEvent (hTerm: TermHandle; {CONST}
  339.                                     var theEvent: EventRecord);
  340.     function TMDoTermKey (hTerm: TermHandle; theKey: ConstStr255Param): BOOLEAN;
  341.     function TMCountTermKeys (hTerm: TermHandle): INTEGER;
  342.     procedure TMGetIndTermKey (hTerm: TermHandle; id: INTEGER; var theKey: Str255);
  343.     procedure TMGetErrorString (hTerm: TermHandle; id: INTEGER; var errMsg: Str255);
  344.  
  345. { $ALIGN RESET}
  346. { $POP}
  347.  
  348. {$ENDC}
  349.  {__TERMINALS__}
  350.  
  351. implementation
  352. end.